package utilitarios;
import java.util.*;

import utilitarios.Musica;
import utilitarios.Usuario;

public class Radio {
	
	private List<Musica> musicas;
	private List<Usuario> usuarios;
	
	public Radio(){
		musicas = new ArrayList<Musica>();
		usuarios = new ArrayList<Usuario>();	
	}

	public boolean criaUsuario(String email, String nome, String senha) throws Exception{
		Usuario user = new Usuario(email, nome, senha);
		if( usuarios.contains(user)){
			throw new Exception("E-mail de usuario já cadastrado");
		}
		usuarios.add(user);
		return true;
	}
	
	public boolean addMusica(String titulo, String album, String artista, String ano,
			String genero, String localizacao) throws Exception{
		Musica music = new Musica(titulo, album, artista, ano, genero, localizacao);
		if (musicas.contains(music)){
			throw new Exception("Musica já cadastrada");
		}
		musicas.add(music);
		return true;
	}
	
	// Implementa busca de musica por meio do nome
	public Musica buscaMusica(String nome){
		for (Musica mus : musicas){
			if (mus.getTitulo() == nome){
				return mus;
			}
		}
		return null;
	}
	
	
	public List<Musica> listaGenero(String genero){
		if (genero == null){
			return null;
		}
		List<Musica> lista = new ArrayList<Musica>(); 
		for (Musica mus : musicas){
			if (mus.getGenero() == genero){
				lista.add(mus);
			}
		}
		return lista;
	}
	
	public List<Musica> listaAlbum(String album){
		if (album == null){
			return null;
		}
		List<Musica> lista = new ArrayList<Musica>(); 
		for (Musica mus : musicas){
			if (mus.getAlbum() == album){
				lista.add(mus);
			}
		}
		return lista;
	}
	
	public List<Musica> listaArtista(String artista){
		if (artista == null){
			return null;
		}
		List<Musica> lista = new ArrayList<Musica>(); 
		for (Musica mus : musicas){
			if (mus.getArtista() == artista){
				lista.add(mus);
			}
		}
		return lista;
	}
	
	public boolean removeUsuario(String email){
		for (Usuario user: usuarios){
			if (user.getEmail() == email){
				usuarios.remove(user);
				return true;
			}
		}
		return false;
	}
	
	public boolean login(String nome, String senha){
		for (Usuario user: usuarios){
			if (user.getEmail() == nome){
				if (user.comparaSenha(senha)){
					return true;
				}
			}
		}
		return false;
	}
	
	public boolean verificaUsuario(String nome){
		for (Usuario user: usuarios){
			if (user.getEmail() == nome){
				return true;
			}
		}
		return false;
	}
	
	public boolean buscaUsuarioNome(String nome){
		for (Usuario user: usuarios){
			if (user.getNome() == nome){
				return true;
			}
		}
		return false;
	}
	
	
	
	

}
